package com.xzy.sms.web.domain.dao;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import com.xzy.sms.web.domain.entity.Template;

/**
 * @desc 
 * @author wjw
 * @time 2017年11月16日下午3:32:57
 */
public interface TemplateDao extends JpaRepository<Template, String>, JpaSpecificationExecutor<Template> {
    
    /**
     * 获取某个用户的所有模板
     * 
     * @param userId id
     * @param pageable xx
     * @return xx
     */
    @Query("select t from Template t where t.user.userId=?1 ")
    Page<Template> findByUserId(String userId, Pageable pageable);
    
    /**
     * 获取某个用户的所有模板
     * 
     * @param userId id
     * @param pageable xx
     * @return xx
     */
    @Query("select t from Template t where t.user.userId=?1 ")
    List<Template> findByUserId(String userId);
    
    /**
     * 获取某个用户的指定code的模板
     * 
     * @param userId id
     * @param code xx
     * @return xx
     */
    @Query(value = "select * from pub_template t where user_id=?1 and code=?2 limit 1", nativeQuery = true)
    Template findByUserIdAndCode(String userId, String code);
    
}
